package com.visitor.registration.service;

import com.visitor.registration.dto.VisitorDTO;
import com.visitor.registration.entity.City;
import com.visitor.registration.entity.InterestArea;
import com.visitor.registration.entity.Province;
import com.visitor.registration.entity.Type;
import com.visitor.registration.entity.Visitor;

import java.time.LocalDateTime;
import java.util.List;

public interface VisitorService {
    
    /**
     * 保存访客信息
     */
    Visitor saveVisitor(VisitorDTO visitorDTO);
    
    /**
     * 获取所有访客信息
     */
    List<Visitor> getAllVisitors();
    
    /**
     * 根据时间范围获取访客信息
     */
    List<Visitor> getVisitorsByDateRange(LocalDateTime start, LocalDateTime end);
    
    /**
     * 生成Excel报表并发送邮件
     */
    void generateReportAndSendMail() throws Exception;
    
    /**
     * 获取所有省份
     */
    List<Province> getAllProvinces();
    
    /**
     * 根据省份ID获取城市列表
     */
    List<City> getCitiesByProvinceId(Integer provinceId);
    
    /**
     * 获取所有关注领域
     */
    List<InterestArea> getAllInterestAreas();
    
    /**
     * 获取所有访客类型
     */
    List<Type> getAllTypes();
} 